home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / tools / developer-tools / assembler-tools / apathysource / dottunnel / dottunnel.s < prev   
Encoding:
Text File  |  1980-02-04  |  20.0 KB  |  837 lines

  1. ;;; "                 Includes & Defines"
  2.            Machine   68020
  3.  
  4.            Incdir    "!includes:"
  5.            Include   "StdLibInc.i"
  6.            Include   "StdHardInc.i"
  7.  
  8.            Include   "Loader.i"
  9.            Include   "Support.i"
  10.            Include   "Demo.i"
  11.  
  12.            xdef      DotTunnel_Init
  13.            xdef      DotTunnel_Show
  14.            xdef      DotTunnel_Counter
  15.            xdef      DotTunnel_Main
  16.            xdef      DotTunnel_Remove
  17.  
  18.            xdef      DotTunnel_Speed
  19.            xdef      DotTunnel_XS
  20.            xdef      DotTunnel_YS
  21.  
  22. KK                 Equ       85
  23.  
  24. DotTunnel_ID       Equ       1234
  25.  
  26. Farg1              Equ       $3af
  27.  
  28. Farg21             Equ       $05fb
  29. Farg22             Equ       $07fc
  30. Farg23             Equ       $0bfd
  31. Farg24             Equ       $0fff
  32.  
  33. Back0              Equ       $0055
  34. Back1              Equ       $0066
  35. Back2              Equ       $0077
  36. Back3              Equ       $0088
  37.  
  38. STARTRINGS         Equ       70
  39. RINGAD             Equ       280
  40.  
  41. ;;;
  42.  
  43. ***************************************
  44. *       Exempel/TestProgram...        *
  45. ***************************************
  46.  
  47.            Section   code,CODE
  48.  
  49.            IFND      noexample
  50. ;;; "                 Example"
  51. Start:             Jsr       _InitDemo
  52.            Tst.l     d0
  53.            Bne       Exit
  54.  
  55. PlayMusic:         Bsr       _PlayMusic
  56.            Tst.l     d0
  57.            Bne       Uninit
  58.  
  59.            Bsr       DotTunnel_Init
  60.            Tst.l     d0
  61.            Bne       StopMusic
  62.  
  63.            Bsr       DotTunnel_Show
  64.  
  65. Main:              Bsr       _Sync
  66.  
  67.            Bsr       DotTunnel_Counter
  68.  
  69.            ;Move.w    #$0020,$dff106
  70.            ;Move.w    #$0a00,$dff180
  71.  
  72.            Bsr       DotTunnel_Main
  73.  
  74.            ;Move.w    #$0020,$dff106
  75.            ;Move.w    #$0000,$dff180
  76.  
  77.            Btst      #6,$bfe001
  78.            Bne       Main
  79. .waitlop           Btst      #6,$bfe001
  80.            Beq       .waitlop
  81.  
  82.            Bsr       DotTunnel_Remove
  83.  
  84. StopMusic:         Bsr       _StopMusic
  85. Uninit:            Bsr       _UninitDemo
  86. Exit:              Moveq     #0,d0
  87.            Rts
  88. ;;;
  89.            ENDC
  90.  
  91. ***************************************
  92. *       Subrutiner nedanför....       *
  93. ***************************************
  94.  
  95. DotTunnel_Init:
  96. ;;; "                 Open Screen"
  97. OpenScreen:        Move.l    #64*512*6,d0
  98.            Move.l    #DotTunnel_ID,d1
  99.            Bsr       _AllocChip
  100.            Tst.l     d0
  101.            Beq       InitError
  102.            Add.l     #64*512,d0
  103.            Add.l     #64*512,d0
  104.            Move.l    d0,ScreenPtr
  105.            Move.l    d0,PtrView
  106.            Add.l     #64*512,d0
  107.            Move.l    d0,PtrDraw
  108.  
  109.            Lea       BplPtr,a0
  110.            Move.l    PtrView,d1
  111.            Add.l     #128*64+16,d1
  112.            Moveq     #1,d2
  113.            Moveq     #0,d0
  114.            Bsr       _SetPtrs
  115.  
  116.            Lea       BplPtr+16,a0
  117.            Move.l    PtrView,d1
  118.            Add.l     #128*64+16+64,d1
  119.            Moveq     #1,d2
  120.            Moveq     #0,d0
  121.            Bsr       _SetPtrs
  122. ;;;
  123. ;;; "                 Install Sprites"
  124.            Lea       SprPtr,a0
  125.            Move.l    #SpriteDummy,d1
  126.            Moveq     #7,d2
  127.            Moveq     #0,d0
  128.            Bsr       _SetPtrs
  129.  
  130.            ;- - - - - - - - - - - - -
  131.  
  132.            IFD       kul
  133.            Lea       SprPtr,a0
  134.            Move.l    #Sprite1,d1
  135.            Moveq     #0,d2
  136.            Moveq     #0,d0
  137.            Jsr       _SetPtrs
  138.  
  139.            Lea       SprPtr,a0
  140.            Lea       8(a0),a0
  141.            Move.l    #Sprite2,d1
  142.            Moveq     #0,d2
  143.            Moveq     #0,d0
  144.            Jsr       _SetPtrs
  145.  
  146.            Lea       SprPtr,a0
  147.            Lea       16(a0),a0
  148.            Move.l    #Sprite3,d1
  149.            Moveq     #0,d2
  150.            Moveq     #0,d0
  151.            Jsr       _SetPtrs
  152.  
  153.            Lea       SprPtr,a0
  154.            Lea       24(a0),a0
  155.            Move.l    #Sprite4,d1
  156.            Moveq     #0,d2
  157.            Moveq     #0,d0
  158.            Jsr       _SetPtrs
  159.  
  160.            Lea       SprPtr,a0
  161.            Lea       32(a0),a0
  162.            Move.l    #Sprite5,d1
  163.            Moveq     #0,d2
  164.            Moveq     #0,d0
  165.            Jsr       _SetPtrs
  166.  
  167.            Lea       SprPtr,a0
  168.            Lea       40(a0),a0
  169.            Move.l    #Sprite6,d1
  170.            Moveq     #0,d2
  171.            Moveq     #0,d0
  172.            Jsr       _SetPtrs
  173.  
  174.            Lea       Custom,a5
  175.            Move.w    #DMAF_SETCLR!DMAF_SPRITE,dmacon(a5)
  176.            ENDC
  177. ;;;
  178. ;;; "                 Allocate perspective table 1"
  179. AllocTable1:       Move.l    #64*640*2,d0        ; *2 = Words
  180.            Move.l    #DotTunnel_ID,d1
  181.            Bsr       _AllocPublic
  182.            Tst.l     d0
  183.            Beq       InitError
  184.            Move.l    d0,Table
  185. ;;;
  186. ;;; "                 Alloc Small Tables"
  187. AllocSmall:        Move.l    #100*2*4+320*2+STARTRINGS*2*4*2,d0        ; *2 = Words
  188.            Move.l    #DotTunnel_ID,d1
  189.            Bsr       _AllocPublic
  190.            Tst.l     d0
  191.            Beq       InitError
  192.            Move.l    d0,X
  193.            Add.l     #100*2,d0
  194.            Move.l    d0,Y
  195.            Add.l     #100*2,d0
  196.            Move.l    d0,Z
  197.            Add.l     #100*2,d0
  198.            Move.l    d0,Draw
  199.            Add.l     #100*2,d0
  200.            Move.l    d0,K1
  201.            Add.l     #320*2,d0
  202.            Move.l    d0,BackBuffPtr
  203.            Add.l     #STARTRINGS*2*4,d0
  204.            Move.l    d0,BackBuffPtr2
  205. ;;;
  206. ;;; "                 Init XYZ-Coords"
  207. InitXYZ:           Move.w    RINGS,d0
  208.            Subq.w    #1,d0
  209.            Ext.l     d0
  210.            Move.l    X,a0
  211.            Move.l    Y,a1
  212.            Move.l    Z,a2
  213.            Move.l    Draw,a3
  214.  
  215. .lop               Clr.w     (a0)+
  216.            Move.l    d0,d1
  217.            Clr.w     (a1)+
  218.            Mulu.w    #RINGAD,d1
  219.            Divu.w    RINGS,d1
  220.            Move.w    d1,(a2,d0.w*2)
  221.            Clr.w     (a3)+
  222.            Dbra      d0,.lop
  223.  
  224.            Move.w    #0,C1
  225.            Move.w    #256*8,C2
  226.            Clr.w     OldTx
  227.            Clr.w     OldTy
  228.            Clr.w     Tx
  229.            Clr.w     Ty
  230.            Clr.w     Step
  231.            Clr.w     Rx
  232.            Clr.w     Ry
  233. ;;;
  234. ;;; "                 Init perspective table"
  235. InitP1:            Move.l    #300,d0             ; Z läget i d0
  236.            Move.l    Table,a0            ; Perspektiv tabell
  237.            Lea       _Sin1024,a1          ; Sinus tabell
  238.            Moveq     #0,d7
  239.  
  240. .lop1              Move.l    #65536*110*128,d2    ; X,Y,R Konstant i d2
  241.            Move.l    #255+KK-4,d3         ; Z Konstant i d3
  242.            Sub.l     d0,d3               ; -Z läget i d3
  243.            Divu.l    d3,d2               ; /Z värde i d2
  244.            Swap      d2                  ; /65536 i d2
  245.            And.l     #$ffff,d2           ;
  246.  
  247.            Move.l    #63,d1              ; Vinkeln i d1
  248.  
  249. .lop2              Move.l    d1,d4               ; Vinkeln i d4
  250.            Lsl.l     #4,d4               ; *16 i d4
  251.            Move.w    (a1,d4.w*2),d4      ; Sin(d4)*256 i d5
  252.            Muls.w    d2,d4               ; *K i d5
  253.            Asr.l     #8,d4               ; /256 i d5
  254.            Addx.l    d7,d4
  255.  
  256.            Move.l    d1,d5               ; Vinkeln i d4
  257.            Add.l     #16,d5
  258.            And.l     #63,d5
  259.            Lsl.l     #4,d5               ; *16 i d4
  260.            Move.w    (a1,d5.w*2),d5      ; Sin(d4)*256 i d5
  261.            Muls.w    d2,d5               ; *K i d5
  262.            Asr.l     #8,d5               ; /256 i d5
  263.            Addx.l    d7,d5
  264.            Asl.l     #6,d5
  265.  
  266.            Move.l    d0,d3               ; Z läget i d3
  267.            Lsl.l     #6,d3               ; *64 i d3
  268.            Add.l     d1,d3               ; +Vinkeln i d3
  269.            Move.w    d4,(a0,d3.w*4)     ; Konstant till Persp.tab.
  270.            Move.w    d5,2(a0,d3.w*4)      ; Konstant till Persp.tab.
  271.  
  272.            Dbra      d1,.lop2            ;
  273.            Dbra      d0,.lop1            ;
  274. ;;;
  275. ;;; "                 Init second perspective table"
  276. InitK1:            Move.l    #300,d0
  277.            Move.l    K1,a0
  278.            Moveq     #0,d7
  279. .lop               Move.l    #110*65536,d1
  280.            Move.l    #255+KK-4,d2
  281.            Sub.l     d0,d2
  282.            Divu.l    d2,d1
  283.            Asr.l     #2,d1
  284.            Addx.l    d7,d1
  285.            Move.w    d1,(a0,d0.w*2)
  286.            Dbra      d0,.lop
  287. ;;;
  288. ;;; "                 Rts"
  289.            Moveq     #0,d0
  290.            Rts
  291.  
  292. InitError:         Move.l    #DotTunnel_ID,d0
  293.            Bsr       _FreeMany
  294.            Moveq     #1,d0
  295.            Rts
  296. ;;;
  297.  
  298. DotTunnel_Show:
  299. ;;; "                 Init Cols"
  300.            Move.w    #$0020,$dff106
  301.            Move.w    #$0000,$dff180    ; Bakgrund
  302.            Move.w    #Farg21,$dff182     ; 1
  303.            Move.w    #Farg21,$dff184     ;   2
  304.            Move.w    #Farg22,$dff186     ; 1 2
  305.            Move.w    #Farg21,$dff188     ;     3
  306.            Move.w    #Farg22,$dff18a     ; 1   3
  307.            Move.w    #Farg22,$dff18c     ;   2 3
  308.            Move.w    #Farg23,$dff18e     ; 1 2 3
  309.  
  310.            Move.w    #Farg21,$dff190     ;       4
  311.            Move.w    #Farg22,$dff192     ; 1     4
  312.            Move.w    #Farg22,$dff194     ;   2   4
  313.            Move.w    #Farg23,$dff196     ; 1 2   4
  314.            Move.w    #Farg22,$dff198     ;     3 4
  315.            Move.w    #Farg23,$dff19a     ; 1   3 4
  316.            Move.w    #Farg23,$dff19c     ;   2 3 4
  317.            Move.w    #Farg24,$dff19e     ; 1 2 3 4
  318. ;;;
  319.            Lea       Copperlista,a0
  320.            Bsr       _InstallCopper
  321.            Rts
  322.  
  323. DotTunnel_Counter:
  324. ;;; "                 Increase Counters"
  325.  
  326.            Move.w    #RINGAD,d2
  327.            Divu.w    RINGS,d2
  328.            Divu.w    DotTunnel_Speed,d2
  329.            Move.w    d2,AD
  330.  
  331.            ;-------------------------
  332.  
  333.            Move.w    DotTunnel_XS,d1
  334.            Muls.w    DotTunnel_Speed,d1
  335.            Move.w    DotTunnel_YS,d2
  336.            Muls.w    DotTunnel_Speed,d2
  337.  
  338.            Add.w     d1,C1
  339.            And.w     #8191,C1
  340.            Add.w     d2,C2
  341.            And.w     #8191,C2
  342.            Subq.w    #1,Count
  343.  
  344.            Moveq     #0,d2
  345.            Move.w    C1,d0
  346.            Asr.w     #3,d0
  347.            Addx.l    d2,d0
  348.            Move.w    d0,Co1
  349.  
  350.            Move.w    C2,d0
  351.            Asr.w     #3,d0
  352.            Addx.l    d2,d0
  353.            Move.w    d0,Co2
  354.  
  355.            Lea       OldTx,a0
  356.            Lea       Tx,a1
  357.            Lea       Step,a2
  358.            Lea       Rx,a3
  359.            Move.w    (a1),d0
  360.            Sub.w     (a0),d0
  361.            Asl.w     #2,d0
  362.            Muls.w    (a2),d0
  363.            Divs.w    AD,d0
  364.            Move.w    (a0),d1
  365.            Asl.w     #2,d1
  366.            Add.w     d1,d0
  367.            Move.w    d0,(a3)
  368.  
  369.            Lea       OldTy,a0
  370.            Lea       Ty,a1
  371.            Lea       Step,a2
  372.            Lea       Ry,a3
  373.            Move.w    (a1),d0
  374.            Sub.w     (a0),d0
  375.            Asl.w     #2,d0
  376.            Muls.w    (a2),d0
  377.            Divs.w    AD,d0
  378.            Move.w    (a0),d1
  379.            Asl.w     #2,d1
  380.            Add.w     d1,d0
  381.            Move.w    d0,(a3)
  382.  
  383.            Lea       Step,a0
  384.            Addq.w    #1,(a0)
  385.            Move.w    AD,d1
  386.            Cmp.w     (a0),d1
  387.            Bge       .ok
  388.            Sub.w     d1,(a0)
  389. .ok
  390. ;;;
  391.            IFD       kul
  392. ;;; "                 Increase Sprite Positions"
  393.            Move.l    BackBuffPtr,a0
  394.  
  395.            Move.w    BackBuffPos,d0
  396.            Move.w    (a0,d0.w*2),d1
  397.            Move.w    d1,SprX
  398.  
  399.            Move.w    BackBuffPos,d0
  400.            Move.w    Co1,d1
  401.            Move.w    d1,(a0,d0.w*2)
  402.  
  403.            Move.w    BackBuffPos,d0
  404.            Addq.w    #1,d0
  405.            Move.w    #STARTRINGS*4,d1
  406.            Divu.w    DotTunnel_Speed,d1
  407.            Divu.w    d1,d0
  408.            Swap      d0
  409.            Move.w    d0,BackBuffPos
  410.  
  411.            Lea       _Sin1024,a3
  412.            Move.w    SprX,d0
  413.            ;Add.w     #512,d0
  414.            And.w     #1023,d0
  415.            Move.w    (a3,d0.w*2),d1      ;1 acc
  416.            Asr.w     #4,d1
  417.  
  418.            And.w     #31,d1
  419.            Move.w    d1,SprX
  420.  
  421.            ;-------------------------
  422.  
  423.            Move.l    BackBuffPtr2,a0
  424.  
  425.            Move.w    BackBuffPos,d0
  426.            Move.w    (a0,d0.w*2),d1
  427.            Move.w    d1,SprY
  428.  
  429.            Move.w    BackBuffPos,d0
  430.            Move.w    Co2,d1
  431.            Move.w    d1,(a0,d0.w*2)
  432.  
  433.            Lea       _Sin1024,a3
  434.            Move.w    SprY,d0
  435.            Add.w     #512,d0
  436.            And.w     #1023,d0
  437.            Move.w    (a3,d0.w*2),d1      ;1 acc
  438.            Asr.w     #3,d1
  439.  
  440.            And.w     #15,d1
  441.            Move.w    d1,SprY
  442. ;;;
  443.            ENDC
  444.            Rts
  445.  
  446. DotTunnel_Main:
  447.            IFD       kul
  448. ;;; "                 Update Sprites"
  449.            Move.l    #$00200000,d1
  450.            Move.w    #$2c,d0
  451.            Sub.w     SprY,d0
  452.            Lsl.w     #8,d0
  453.  
  454.            Move.w    #$40,d2
  455.            Sub.w     SprX,d2
  456.            Add.w     d2,d0
  457.            Swap      d0
  458.            And.l     #$ffff0000,d0
  459.            ;Or.l      #$4c000000,d0
  460.            Move.l    d0,Sprite1
  461.            Add.l     d1,d0
  462.            Move.l    d0,Sprite2
  463.            Add.l     d1,d0
  464.            Move.l    d0,Sprite3
  465.            Add.l     d1,d0
  466.            Move.l    d0,Sprite4
  467.            Add.l     d1,d0
  468.            Move.l    d0,Sprite5
  469.            Add.l     d1,d0
  470.            Move.l    d0,Sprite6
  471.            Add.l     d1,d0
  472. ;;;
  473.            ENDC
  474. ;;; "                 Clear Screen"
  475.            Move.l    PtrDraw,a0
  476.  
  477. Clear:             Moveq     #63,d0
  478.            Lea       24568(a0),a0    ;(64*128+16)+(64*255+40)
  479.            Moveq     #0,d1
  480.            Moveq     #0,d2
  481.            Moveq     #0,d3
  482.            Moveq     #0,d4
  483.            Moveq     #0,d5
  484.            Sub.l     a1,a1
  485.            Sub.l     a2,a2
  486.            Sub.l     a3,a3
  487.            Sub.l     a4,a4
  488.            Sub.l     a5,a5
  489.            Moveq     #24,d6
  490. .loop
  491.            Movem.l   d1-d5/a1-a5,-(a0)
  492.            Sub.l     d6,a0
  493.            Movem.l   d1-d5/a1-a5,-(a0)
  494.            Sub.l     d6,a0
  495.            Movem.l   d1-d5/a1-a5,-(a0)
  496.            Sub.l     d6,a0
  497.            Movem.l   d1-d5/a1-a5,-(a0)
  498.            Sub.l     d6,a0
  499.            Dbra      d0,.loop
  500. ;;;
  501. ;;; "                 Dot It Out!"
  502. DrawTunnel1:       Move.w    RINGS,d0
  503.            Subq.w    #1,d0
  504.            Ext.l     d0
  505.            Move.l    X,a0
  506.            Move.l    Y,a1
  507.            Move.l    Z,a2
  508.            Move.l    PtrDraw,a4
  509.            Add.l     #63,a4
  510.  
  511.            Move.l    Table,CurrTable
  512.            Move.l    K1,d5
  513.            Moveq     #0,d2
  514.            Move.w    Ry,d6
  515.  
  516.            Move.l    Draw,a6
  517.  
  518. .RingLoop          Move.w    (a2),d2              ;1 acc
  519.            Move.l    d5,a5
  520.  
  521.            Move.w    (a0),d3              ;1 acc
  522.            Sub.w     Rx,d3
  523.            Move.w    (a5,d2.w*2),d7       ;1 acc
  524.            Muls.w    d7,d3
  525.            Add.l     #(256-3*8)*65536,d3
  526.  
  527.            Move.w    (a1),d4              ;1 acc
  528.            Sub.w     d6,d4
  529.            Muls.w    d7,d4
  530.            Swap      d4
  531.            Add.w     #256*4,d4
  532.            Asr.w     #2,d4
  533.            Asl.w     #6,d4
  534.            Move.w    d4,d3
  535.  
  536.            Lsl.l     #8,d2
  537.            Move.l    CurrTable,a5
  538.            Add.l     d2,a5
  539.  
  540.            Move.w    DotTunnel_Speed,d7
  541.            Add.w     d7,(a2)         ;1 acc
  542.            Moveq     #15,d1
  543.            Tst.w     (a6)
  544.            Beq       .skipdraw
  545. .DotLoop
  546.            REPT      4
  547.            Move.l    a4,a3               ;2
  548.            Move.l    d3,d4               ;2
  549.            Add.l     (a5)+,d4            ;5
  550.            Add.w     d4,a3               ;4
  551.            Swap      d4                  ;4
  552.            Move.w    d4,d7               ;2
  553.            Lsr.w     #3,d4               ;4
  554.            Sub.w     d4,a3               ;4
  555.            Bset      d7,(a3)             ;9
  556.            ENDR
  557.  
  558.            Dbra.b    d1,.DotLoop         ;6                                                 ;---------------
  559.  
  560. .skipdraw          Cmp.w     #RINGAD-1,(a2)           ;1 acc
  561.            Ble       .skip
  562.            Sub.w     #RINGAD,(a2)           ;1 acc
  563.  
  564.            Clr.w     Step               ;1 acc
  565.            Move.w    #1,(a6)
  566.  
  567.            Lea       Tx,a3
  568.            Move.w    (a3),d3             ;1 acc
  569.            Move.w    d3,OldTx
  570.            Move.w    (a0),d3             ;1 acc
  571.            Asr.w     #2,d3
  572.            Move.w    d3,(a3)
  573.  
  574.            Lea       Ty,a3
  575.            Move.w    (a3),d3             ;1 acc
  576.            Move.w    d3,OldTy
  577.            Move.w    (a1),d3             ;1 acc
  578.            Asr.w     #2,d3
  579.            Move.w    d3,(a3)
  580.  
  581.            Lea       _Sin1024,a3
  582.            Move.w    Co1,d3
  583.            Move.w    (a3,d3.w*2),d4      ;1 acc
  584.            Muls.w    XX,d4
  585.            Asr.l     #8,d4
  586.            Move.w    d4,(a0)            ;1 acc
  587.  
  588.            Move.w    Co2,d3
  589.            Add.w     #256,d3
  590.            And.w     #1023,d3
  591.            Move.w    (a3,d3.w*2),d4      ;1 acc
  592.            Muls.w    YY,d4
  593.            Asr.l     #8,d4
  594.            Move.w    d4,(a1)            ;1 acc
  595.  
  596. .skip              Addq.l    #2,a0
  597.            Addq.l    #2,a1
  598.            Addq.l    #2,a2
  599.            Addq.l    #2,a6
  600.  
  601.            Dbra      d0,.RingLoop
  602. ;;;
  603. ;;; "                 Screen Swap"
  604. ScreenSwap:        Move.l    PtrView,d0
  605.            Move.l    PtrDraw,PtrView
  606.            Move.l    d0,PtrDraw
  607.  
  608.            Lea       BplPtr,a0
  609.            Move.l    PtrView,d1
  610.            Add.l     #128*64+16,d1
  611.            Moveq     #1,d2
  612.            Moveq     #0,d0
  613.            Bsr       _SetPtrs
  614.  
  615.            Lea       BplPtr+16,a0
  616.            Move.l    PtrView,d1
  617.            Add.l     #128*64+16+64,d1
  618.            Moveq     #1,d2
  619.            Moveq     #0,d0
  620.            Bsr       _SetPtrs
  621. ;;;
  622.            Rts
  623.  
  624. DotTunnel_Remove:
  625. ;;; "                 Free Memory"
  626. FreeMemory:        Move.l    #DotTunnel_ID,d0
  627.            Bsr       _FreeMany
  628. ;;;
  629.            Rts
  630.  
  631. ***************************************
  632. *                Data...              *
  633. ***************************************
  634.  
  635.            Section   data,DATA
  636. ;;; "Data..."
  637. BackBuffPtr:       Dc.l      0
  638. BackBuffPtr2:      Dc.l      0
  639. BackBuffPos:       Dc.l      0
  640. BackBuffPos2:      Dc.l      0
  641. SprX:              Dc.l      0
  642. SprY:              Dc.l      0
  643.  
  644. StoryCount:        Dc.l      0
  645. CurrTable:         Dc.l      0
  646.  
  647. DotTunnel_XS:      Dc.w      0
  648. DotTunnel_YS:      Dc.w      0
  649. XX:                Dc.w      512
  650. YY:                Dc.w      2048
  651.  
  652. Count:             Dc.w      0
  653. Persp:             Dc.w      0
  654. Mode:              Dc.w      0
  655. OldMode:           Dc.w      0
  656.  
  657. DotTunnel_Speed:   Dc.w      1
  658. AD:                Dc.w      0
  659. RINGS:             Dc.w      STARTRINGS
  660. COPEFF:            Dc.w      0
  661.  
  662. C1:                Dc.w      0
  663. C2:                Dc.w      256*8
  664. Co1:               Dc.w      0
  665. Co2:               Dc.w      0
  666. Table:             Dc.l      0,0
  667. ScreenPtr:         Dc.l      0
  668. PtrView:           Dc.l      0
  669. PtrDraw:           Dc.l      0
  670.  
  671. X:                 Dc.l      0
  672. Y:                 Dc.l      0
  673. Z:                 Dc.l      0
  674. Draw:              Dc.l      0
  675. K1:                Dc.l      0
  676. K2:                Dc.l      0
  677.  
  678. OldTx:             Dc.w      0
  679. OldTy:             Dc.w      0
  680. Tx:                Dc.w      0
  681. Ty:                Dc.w      0
  682. Step:              Dc.w      0
  683. Rx:                Dc.w      0
  684. Ry:                Dc.w      0
  685. ;;;
  686.            IFD       kul2
  687. ;;; "StoryBoard"
  688. StoryBoard:
  689.            ;Dc.w     XS,YS,TIME,PERSP,MODE: 0-1=true,2-3=half true
  690.            ; 4-5=false ,XX,YY,SPEED,RINGS,COPEFF
  691.            ;------------------------------
  692.            ;XS,YS: helst delbart med 8
  693.  
  694.            Dc.w      34,38,100,2
  695.            Dc.w      36,32,200,2
  696.            Dc.w      16,46,100,2
  697.            Dc.w      26,24,200,2
  698.            Dc.w      24,34,100,2
  699.            Dc.w      16,26,100,2
  700.            Dc.w      32,24,100,2
  701.            Dc.w      24,14,50,2
  702.            Dc.w      22,24,50,2
  703.            Dc.w      14,35,50,2
  704.            Dc.w      17,24,50,4
  705.            Dc.w      34,14,50,4
  706.            Dc.w      32,34,50,4
  707.            Dc.w      14,18,50,4
  708.            Dc.w      32,24,50,4
  709.            Dc.w      19,9,100,4
  710.            Dc.w      19,19,50,4
  711.            Dc.w      29,9,20,4
  712.            Dc.w      19,29,20,4
  713.            Dc.w      40,23,50,4
  714.            Dc.w      12,20,20,4
  715.            Dc.w      19,9,50,4
  716.            Dc.w      39,29,20,4
  717.            Dc.w      29,49,20,4
  718.            Dc.w      19,29,50,4
  719.            Dc.w      10,23,20,4
  720.            Dc.w      12,30,20,4
  721.            Dc.w      29,9,50,4
  722.            Dc.w      19,29,20,4
  723.            Dc.w      40,23,20,4
  724.            Dc.w      12,20,50,4
  725.            Dc.w      19,19,20,4
  726.            Dc.w      39,29,20,4
  727.            Dc.w      29,49,50,4
  728.            Dc.w      19,29,20,4
  729.            Dc.w      10,23,20,4
  730.            Dc.w      12,30,100,4
  731.  
  732.            Dc.w      $FFFF
  733. ;;;
  734.            ENDC
  735.  
  736.            Section   chipdata,DATA_C
  737. ;;; "Copperlist"
  738. Copperlista:       Dc.w      $008e,$2c81     ; DIWSTRT
  739.            Dc.w      $0090,$2bc1     ; DIWSTOP
  740.            Dc.w      $0092,$0038     ; DDFSTRT
  741.            Dc.w      $0094,$00d0     ; DDFSTOP
  742.            Dc.w      $0100,$4201     ; BPLCON0
  743.            Dc.w      $0102,$0001     ; BPLCON1
  744.            Dc.w      $0104,$0000     ; BPLCON2
  745.            Dc.w      $0106,$0020     ; BPLCON3 ($0020 = copborder)
  746.            Dc.w      $0108,24-8      ; BPLMOD1
  747.            Dc.w      $010a,24-8      ; BPLMOD2
  748.            Dc.w      $010c,$0022     ; Sprite palette = 32
  749.            Dc.w      $01fc,$000f     ; FETCHMODE
  750. BplPtr             Dc.w      $00e0,$0000     ; BPL1PTH
  751.            Dc.w      $00e2,$0000     ; BPL1PTL
  752.            Dc.w      $00e4,$0000     ; BPL1PTL
  753.            Dc.w      $00e6,$0000     ; BPL1PTL
  754.            Dc.w      $00e8,$0000     ; BPL1PTL
  755.            Dc.w      $00ea,$0000     ; BPL1PTL
  756.            Dc.w      $00ec,$0000     ; BPL1PTL
  757.            Dc.w      $00ee,$0000     ; BPL1PTL
  758.  
  759. SprPtr:
  760. SprNum             Set       $0120
  761.            Rept      16
  762.            Dc.w      SprNum,$0000    ; SPRxPT
  763. SprNum             Set       SprNum+2
  764.            Endr
  765.  
  766.            IFD       kul
  767.            Dc.w      $0106,$2020
  768.            Dc.w      $0180,Back0
  769.            Dc.w      $0182,Back1
  770.            Dc.w      $0184,Back2
  771.            Dc.w      $0186,Back3
  772.            ;--------------------
  773.            Dc.w      $0188,Back0
  774.            Dc.w      $018a,Back1
  775.            Dc.w      $018c,Back2
  776.            Dc.w      $018e,Back3
  777.            ;--------------------
  778.            Dc.w      $0190,Back0
  779.            Dc.w      $0192,Back1
  780.            Dc.w      $0194,Back2
  781.            Dc.w      $0196,Back3
  782.            ;--------------------
  783.            Dc.w      $0198,Back0
  784.            Dc.w      $019a,Back1
  785.            Dc.w      $019c,Back2
  786.            Dc.w      $019e,Back3
  787.            ENDC
  788.  
  789.            Dc.w      $ffff,$fffe     ; End of list
  790.  
  791. ;;;
  792.            IFD       kul
  793. ;;; "Sprites"
  794.            Cnop      0,8
  795. Sprite1:           Dc.l      $2c400000,0,$2c020000,0
  796.            REPT      (256+16)/16
  797.            Include   "!intro:dottunnel/back.spr4"
  798.            ENDR
  799.            Dc.l      0,0,0,0
  800.  
  801.            Cnop      0,8
  802. Sprite2:           Dc.l      $2c600000,0,$2c020000,0
  803.            REPT      (256+16)/16
  804.            Include   "!intro:dottunnel/back.spr4"
  805.            ENDR
  806.            Dc.l      0,0,0,0
  807.  
  808.            Cnop      0,8
  809. Sprite3:           Dc.l      $2c800000,0,$2c020000,0
  810.            REPT      (256+16)/16
  811.            Include   "!intro:dottunnel/back.spr4"
  812.            ENDR
  813.            Dc.l      0,0,0,0
  814.  
  815.            Cnop      0,8
  816. Sprite4:           Dc.l      $2ca00000,0,$2c020000,0
  817.            REPT      (256+16)/16
  818.            Include   "!intro:dottunnel/back.spr4"
  819.            ENDR
  820.            Dc.l      0,0,0,0
  821.  
  822.            Cnop      0,8
  823. Sprite5:           Dc.l      $2cc00000,0,$2c020000,0
  824.            REPT      (256+16)/16
  825.            Include   "!intro:dottunnel/back.spr4"
  826.            ENDR
  827.            Dc.l      0,0,0,0
  828.  
  829.            Cnop      0,8
  830. Sprite6:           Dc.l      $2ce00000,0,$2c020000,0
  831.            REPT      (256+16)/16
  832.            Include   "!intro:dottunnel/back.spr4"
  833.            ENDR
  834.            Dc.l      0,0,0,0
  835. ;;;
  836.            ENDC
  837.